package cn.ware.house.interfaces.mapper;

import cn.ware.house.interfaces.entity.Warehouse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

/**
 * 仓库数据访问接口，定义了对仓库信息表（warehouse表）进行数据库操作的方法。
 * 通过MyBatis框架，这些方法会映射到对应的SQL语句，实现与数据库的交互。
 */
@Mapper
public interface WarehouseMapper {
    /**
 * 根据仓库编号查询仓库信息。
 *
 * @param warehouseId 仓库编号
 * @return 对应的仓库实体对象，如果不存在则返回null
 */
    Warehouse selectWarehouseById(Integer warehouseId);

    /**
 * 查询所有仓库信息。
 *
 * @return 包含所有仓库信息的列表
 */
    List<Warehouse> selectAllWarehouses();

    /**
 * 插入仓库信息到数据库。
 *
 * @param warehouse 要插入的仓库实体对象
 * @return 受影响的行数，一般插入成功返回1
 */
    int insertWarehouse(Warehouse warehouse);

    /**
 * 根据仓库编号更新仓库信息。
 *
 * @param warehouse 包含更新后信息的仓库实体对象
 * @return 受影响的行数，返回更新的行数数量
 */
    int updateWarehouseById(Warehouse warehouse);

    /**
 * 根据仓库编号删除仓库信息。
 *
 * @param warehouseId 要删除的仓库编号
 * @return 受影响的行数，删除成功返回1
 */
    int deleteWarehouseById(Integer warehouseId);
}